/*
// @title: 加密
// @auth: 技术狼(jishulang.com)
*/
package fun

import (
	"crypto/md5"
	"crypto/sha1"
	"crypto/sha256"
	"crypto/sha512"
	"encoding/hex"
	"fmt"
)

// @title: Md5加密
// @param: string
// @return: string
// @description:
// @date: 2024/6/11 22:32
func Md5(src string) string {
	//方法1
	h := md5.New()
	h.Write([]byte(src))
	return hex.EncodeToString(h.Sum(nil))

	//方法2
	//return fmt.Sprintf("%x", md5.Sum([]byte(src)))
}

// @title: sha1加密
// @param: string
// @return: string
// @description:
// @date: 2024/6/11 22:32
func Sha1(str string) string {
	return (fmt.Sprintf("%x", sha1.Sum([]byte(str))))
}

// @title: Sha256加密
// @param: string
// @return: string
// @description:
// @date: 2024/6/11 22:32
func Sha256(str string) string {
	hashInBytes := sha256.Sum256([]byte(str))
	hashStr := hex.EncodeToString(hashInBytes[:])
	return hashStr
}

// @title: Sha512加密
// @param: string
// @return: string
// @description:
// @date: 2024/6/11 22:32
func Sha512(src string) string {
	h := sha512.New()
	h.Write([]byte(src))
	return hex.EncodeToString(h.Sum(nil))
}
